// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/threading/simple_thread.h"
#include "cc/raster/synchronous_task_graph_runner.h"
#include "cc/test/task_graph_runner_test_template.h"

namespace cc {
namespace {

    class SynchronousTaskGraphRunnerTestDelegate {
    public:
        SynchronousTaskGraphRunnerTestDelegate() { }

        void StartTaskGraphRunner() { }

        TaskGraphRunner* GetTaskGraphRunner()
        {
            return &synchronous_task_graph_runner_;
        }

        void StopTaskGraphRunner() { synchronous_task_graph_runner_.RunUntilIdle(); }

    private:
        SynchronousTaskGraphRunner synchronous_task_graph_runner_;
    };

    INSTANTIATE_TYPED_TEST_CASE_P(SynchronousTaskGraphRunner,
        TaskGraphRunnerTest,
        SynchronousTaskGraphRunnerTestDelegate);
    INSTANTIATE_TYPED_TEST_CASE_P(SynchronousTaskGraphRunner,
        SingleThreadTaskGraphRunnerTest,
        SynchronousTaskGraphRunnerTestDelegate);

} // namespace
} // namespace cc
